//在创建集合规则时，可以设置当前字段的验证规则，验证失败就输出插入失败
// required:true 必传字段
// minlength:2 最小长度
// maxlength:5 最大长度
// trim:true   去掉前后空格
/* 针对数字
min:2  最小数值为2
max:100  最大数值为100
*/
// default:Date.now  默认值，默认为当前时间
// enum:['苹果','梨子','橘子']  枚举，规定这个字段只能传数组里的值
/*
validate:{  自定义验证器
    validator: v =>{
        //这个v就是这个字段传入的值，函数返回布尔值
        //true表示验证成功 false表示验证失败
        return v&&v.length>4    表示v不为空并且大于4
    },
    message:'可以写报错信息'
}
*/

const mongoose = require("mongoose");
mongoose.connect('mongodb://localhost/nodeDB', {
    useNewUrlParser: true,
    useUnifiedTopology: true
})
    .then(() => {
        console.log('连接数据库成功');
    })
    .catch(err => {
        console.log('连接数据库失败', err);
    })
const courseSchema = new mongoose.Schema({
    title: {
        type:String,    //当前字段的类型
        //required:true   //必传字段，如果不传就会报错
        required:[true,'请传入文章标题']    //传入数组可以自定义报错信息
    },
    author: {
        type:String,
        enum:{
            values:['苹果','梨子','橘子'],
            message:'如果要给enum添加错误信息，可以这样写成对象'
        }
    },
    isPublished: Boolean
})
const Course = mongoose.model('Course', courseSchema)  // 它会在数据库中创建一个courses集合
Course.create({title:'aa',author:'1',isPublished:true})
        .then(result=>console.log(result))
        .catch(error=>console.log('这里能获取到报错信息'+error))



